vue中过滤器filters的作用是什么? 能够帮我们处理快速一些数据的格式----format数据格式化处理。 语法也很简单
代码语言:javascript复制{{ message | Filter }}message: 要格式化的数据 Filter: 对数据格式化的方法
下面看看vue自带过滤器有哪些,并附带小示例。最后记得看看如果自定义过滤器哦!
vue自带的过滤器capitalize(首字母大写)代码语言:javascript复制{{message | capitalize}}var myVue = new Vue({el: ".test",data: {message: "javan"}})上面代码输出:Javan
uppercase(全部大写)代码语言:javascript复制// 初始message:abc{{message | uppercase}}// 上面代码输出:ABClowercase(全部小写)代码语言:javascript复制// 初始message:ABC{{message | lowercase}}// 上面代码输出:abccurrency(输出金钱以及小数点)代码语言:javascript复制{{message | currency}}// 输出$520.13{{message | currency '¥' "2"}}//输出 $520.13var myVue = new Vue({el: ".test",data: {message: "520.1314"}})第一个参数 {String} [货币符号] - 默认值: '$' 第二个参数 {Number} [小数位] - 默认值: 2
pluralize(变复数)如果只有一个参数,复数形式只是简单地在末尾添加一个 “s”。如果有多个参数,参数被当作一个字符串数组,对应一个、两个、三个…复数词。如果值的个数多于参数的个数,多出的使用最后一个参数。
代码语言:javascript复制{{message}}{{message | pluralize 'item'}} 输出: 1 item{{item}} {{item | pluralize 'item'}}输出: 1 item 2 items 3 items{{item}} {{item | pluralize 'st' 'rd'}}输出: 1 st 2 rd 3 rd{{item}} {{item | pluralize 'item'}}输出: 1 item 2 items 3 items{{item}} {{item | pluralize 'st' 'rd'}}输出: 1 st 2 rd 3 rdvar myVue = new Vue({el: ".test",data: {message: 1,lili: [1,2,3],man: {name1: 1,name2: 2,name3: 3}}})debounce(事件延时)1) 限制: 需在@里面使用 2) 参数:{Number} [wait] - 默认值: 300 3) 功能:包装处理器,让它延迟执行 x ms, 默认延迟 300ms。包装后的处理器在调用之后至少将延迟 x ms, 如果在延迟结束前再次调用,延迟时长重置为 x ms。
代码语言:javascript复制点击我var myVue = new Vue({el: ".test",methods: {doSomeThing: function () {// do something}}})limitBy(排序)1) 限制:需在v-for(即数组)里面使用 第一个参数:{Number} 取得数量 第二个参数:{Number} 偏移量
代码语言:javascript复制{{item}}输出1 2 3 4 5 6 7 8 9 10{{item}}输出 4 5 6 7 8 9 10 11 12 13var myVue = new Vue({el: ".test",data: {lili: [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]}})filterBy(过滤)1) 限制:需在v-for(即数组)里面使用 第一个参数: {String | Function} 需要搜索的字符串 第二个参数: in (可选,指定搜寻位置) 第三个参数: {String} (可选,数组格式)
代码语言:javascript复制{{item}}输出oi oa lo ouo oala{{item.name}}输出lily lucy{{item.name+"+"+item.dada}}输出lily+undefined lucy+undefined undefined+lshvar myVue = new Vue({el: ".test",data: {lili: ["oi", "oa", "ll", "lo" ,"ouo" ,"kk" ,"oala"],man: [//此处注意man是数组,不是对象{name: "lily"},{name: "lucy"},{name: "oo"},{dada: "lsh"},{dada: "ofg"}]}})orderBy(排序)1) 限制:需在v-for(即数组)里面使用 第一个参数: {String | Array | Function} 需要搜索的字符串 第二个参数: {String} 可选参数 order 决定结果升序(order >= 0)或降序(order < 0),默认是升序
代码语言:javascript复制遍历数组{{item}}输出kk ll oi{{item}}输出oi ll kk遍历含对象的数组{{item.name}}输出Bruce Chuck Jackie{{item.name}}输出Jackie Chuck Bruce使用函数排序{{item.name}}输出Bruce Chuck Jackievar myVue = new Vue({el: ".test",data: {lili: ["oi", "kk", "ll"],man: [//此处注意man是数组,不是对象 {name: 'Jackie',age: 62 }, {name: 'Chuck',age: 76 }, {name: 'Bruce',age: 61 }]},methods: {ageByTen: function () {return 1;}}})自定义过滤器代码语言:javascript复制{{'2018-11-16 18:12:15'|formatDate}}var myVue = new Vue({el: ".test",methods: {},filters:{formatDate (val) {return moment(val).format('YYYY-MM-DD');// 这里用到了moment.js}}})